﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace QuanLyKhachHang.Forms
{
    #region using
    using QuanLyKhachHang.BUS;
    using QuanLyKhachHang.DTO;
    using QuanLyKhachHang.Utilities;
    #endregion

    public partial class frmChinhSachUuDai : Form
    {
        private bool blnLoading;
        private CS_UUDAIBUS objBUS;
        private DataSet objDS;

        public frmChinhSachUuDai()
        {
            InitializeComponent();
        }

        private void frmChinhSachUuDai_Load(object sender, EventArgs e)
        {
            LoadChinhSachUuDai();
        }

        public void LoadChinhSachUuDai()
        {
            ListViewItem objListViewItem;
            objBUS = new CS_UUDAIBUS(GlobalVariables.g_strConnectionString);

            try
            {
                blnLoading = true;

                objDS = objBUS.SelectAll();
                lstvwDanhSachHienThi.Items.Clear();

                for (int i = 0; i < objDS.Tables["CS_UUDAI"].Rows.Count; i++)
                {
                    objListViewItem = new ListViewItem();
                    DataRow row = objDS.Tables["CS_UUDAI"].Rows[i];
                    objListViewItem.Text = row["LOAI"].ToString();
                    objListViewItem.SubItems.Add(row["PHANTRAM"].ToString());
                    objListViewItem.SubItems.Add(row["DIENGIAI"].ToString());
                    lstvwDanhSachHienThi.Items.Add(objListViewItem);
                }

                blnLoading = false;
            }
            catch (System.Exception e)
            {
                throw new Exception(e.Message, e.InnerException);
            }
        }

        private void btnThem_Click(object sender, EventArgs e)
        {
            ActionAdd();
        }

        private void btnXoa_Click(object sender, EventArgs e)
        {
            ActionDelete();
        }

        private void btnLuu_Click(object sender, EventArgs e)
        {
            ActionUpdate();
        }

        public void ActionUpdate()
        {
            try
            {
                objBUS = new CS_UUDAIBUS(GlobalVariables.g_strConnectionString);

                if (txtPhanTram.Text.Equals(""))
                {
                    MessageBox.Show("Bạn chưa nhập phần trăm", "Bao Loi",
                        MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
                    return;
                }

                if (txtDienGiai.Text.Equals(""))
                {
                    MessageBox.Show("Bạn chưa nhập diễn giải", "Bao Loi",
                        MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
                    return;
                }

                CS_UUDAIDTO objDto = new CS_UUDAIDTO
                {
                    PHANTRAM = int.Parse(txtPhanTram.Text),
                    DIENGIAI = txtDienGiai.Text,
                    LOAI = txtLoai.Text
                };

                if (!objBUS.Update(objDto))
                {
                    MessageBox.Show("Thao tác cập nhật thất bại", "Bao Loi",
                        MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
                }
                else
                {
                    MessageBox.Show("Dữ liệu đã được cập nhật", "Thông báo",
                        MessageBoxButtons.OK, MessageBoxIcon.Information);
                    LoadChinhSachUuDai();
                }
            }
            catch (System.Exception e)
            {
                throw new Exception(e.Message, e.InnerException);
            }
        }

        private void ActionDelete()
        {
            //neu o o textname chua co du lieu
            if (txtLoai.Text.Equals(""))
            {
                MessageBox.Show("Bạn chưa chọn chính sách để xóa", "Bao Loi",
                    MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
                return;
            }
            else
            {
                objBUS = new CS_UUDAIBUS(GlobalVariables.g_strConnectionString);

                if (!objBUS.Delete(txtLoai.Text))
                {
                    MessageBox.Show("Thao tác xóa thất bại", "Bao loi",
                        MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
                }
                else
                {
                    txtLoai.Text = String.Empty;
                    txtPhanTram.Text = String.Empty;
                    txtDienGiai.Text = String.Empty;
                    MessageBox.Show("Dữ liệu đã được xóa", "Thông báo",
                        MessageBoxButtons.OK, MessageBoxIcon.Information);
                    LoadChinhSachUuDai();
                }
            }
        }

        private void ActionAdd()
        {
            try
            {
                objBUS = new CS_UUDAIBUS(GlobalVariables.g_strConnectionString);

                if (txtLoai.Text.Equals(""))
                {
                    MessageBox.Show("Bạn chưa nhập loại", "Bao Loi",
                        MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
                    return;
                }

                if (txtPhanTram.Text.Equals(""))
                {
                    MessageBox.Show("Bạn chưa nhập phẩn trăm", "Bao Loi",
                        MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
                    return;
                }

                if (txtDienGiai.Text.Equals(""))
                {
                    MessageBox.Show("Bạn chưa nhập diễn giải", "Bao Loi",
                        MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
                    return;
                }

                CS_UUDAIDTO objDto = new CS_UUDAIDTO
                {
                    PHANTRAM = int.Parse(txtPhanTram.Text),
                    DIENGIAI = txtDienGiai.Text,
                    LOAI = txtLoai.Text
                };

                if (!objBUS.Insert(objDto))
                {
                    MessageBox.Show("Thao tác thêm thất bại", "Bao Loi",
                        MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
                }
                else
                {
                    MessageBox.Show("Dữ liệu đã được thêm", "Thông báo",
                        MessageBoxButtons.OK, MessageBoxIcon.Information);
                    LoadChinhSachUuDai();
                }
            }
            catch (System.Exception e)
            {
                throw new Exception(e.Message, e.InnerException);
            }
        }

        private void lstvwDanhSachHienThi_Click(object sender, EventArgs e)
        {
            objBUS = new CS_UUDAIBUS(GlobalVariables.g_strConnectionString);

            try
            {
                ListView.SelectedListViewItemCollection lstview =
                    this.lstvwDanhSachHienThi.SelectedItems;

                objDS = objBUS.SelectByID(lstview[0].Text);
                DataRow row = objDS.Tables["CS_UUDAI"].Rows[0];

                txtLoai.ReadOnly = true;
                txtLoai.BackColor = Control.DefaultBackColor;
                txtLoai.Text = row["LOAI"].ToString();
                txtPhanTram.Text = row["PHANTRAM"].ToString();
                txtDienGiai.Text = row["DIENGIAI"].ToString();
            }
            catch (System.Exception ex)
            {
                throw new Exception(ex.Message, ex.InnerException);
            }
        }

        private void btnReset_Click(object sender, EventArgs e)
        {
            txtDienGiai.Text = "";
            txtPhanTram.Text = "";
            txtLoai.Text = "";
            txtLoai.ReadOnly = false;
            txtLoai.BackColor = Color.White;
        }
    }
}
